Large software systems, for example enterprise resource planning (ERP) or customer relationship management (CRM) systems, can be designed to work with instances of a great number of different objects. In a CRM system from SAP AG, for example, there are the object types accounts, contact persons, campaigns, target groups, orders, opportunities, to name a few examples. A user working with instances of these objects may need access to some or all information in the object from time to time.
These and other objects can, however, contain a great deal of different information, and can therefore be very complex. Moreover, the object's location in a hierarchy can be significant to the user in that it can provide a context for the specific information in the object and a guideline to other information that can be available. Also, users need to create new objects from time to time and this will affect the composition of the hierarchy where the new object is created.